package com.jilefojing.dao;

import java.util.List;
import java.util.Map;

import com.jilefojing.beans.enums.ItemTypeEnumForSource;
import com.jilefojing.beans.pojos.RTagSource;
import com.jilefojing.beans.query.RTagSourceQuery;
import com.jilefojing.beans.vo.Pagination;
import com.jilefojing.dao.base.IBaseDao;

/**
 * 
 * @author 作者 jgshun
 * @date 创建时间 2016年07月25日 22时06分59秒
 */
public interface IRTagSourceDao extends IBaseDao<RTagSource> {

	Pagination<RTagSource> getPagination(RTagSourceQuery rTagSourceQuery, Pagination<RTagSource> pagination);

	/**
	 * 统计有每个标签类型拥有多少资源 list-->map:{tagId:,count:}
	 * 
	 * @param tagIds
	 *            要统计的标签id列表
	 * @param itemTypes
	 *            被统计的资源类型
	 * @return
	 */
	List<Map<String, Object>> countSourcesByItemTypesForTags(List<Long> tagIds, List<ItemTypeEnumForSource> itemTypes);

	List<RTagSource> getListByItem(ItemTypeEnumForSource itemType, long itemId);

	List<RTagSource> getListByItems(ItemTypeEnumForSource itemType, List<Long> itemIds);

	void deleteByItem(ItemTypeEnumForSource itemType, long itemId);

	void deleteByItems(ItemTypeEnumForSource itemType, List<Long> itemIds);

	long countByTagId(long tagId);

	long countByTagIds(List<Long> tagIds);

	void deleteByTagId(long tagId);

	void deleteByTagIds(List<Long> tagIds);

}
